package util;

import bean.juego.AccionBanderaCaptura;
import bean.juego.AccionBanderaJuego;
import bean.jugador.Jugador;
import logic.Buscador;
import logic.serial.bean.AccionBanderaCapturaSerial;
import logic.serial.bean.AccionBanderaJuegoSerial;

public interface Converter<R, O> {

    R convert(O a);
    public static final Converter converterStringToJugador = new Converter<Jugador, String>() {

        @Override
        public Jugador convert(String a) {
            return Buscador.jugadorPorApodo(a);
        }
    };
    public static final Converter converterJugadorToString = new Converter<String, Jugador>() {

        @Override
        public String convert(Jugador a) {
            return a.getDatos().getNombre();
        }
    };
    public static final Converter converterAccionBanderaJuegoToSerial = new Converter<AccionBanderaJuegoSerial, AccionBanderaJuego>() {

        @Override
        public AccionBanderaJuegoSerial convert(AccionBanderaJuego a) {
            return AccionBanderaJuegoSerial.fromBean(a);
        }
    };
    public static final Converter converterAccionBanderaCapturaToSerial = new Converter<AccionBanderaCapturaSerial, AccionBanderaCaptura>() {

        @Override
        public AccionBanderaCapturaSerial convert(AccionBanderaCaptura a) {
            return AccionBanderaCapturaSerial.fromBean(a);
        }
    };
}
